草庐IT

c++ - MBCS 到 UTF-8 C++

全部标签

c - 在 c 中实现 xml 解析器

我正在考虑用c99构建一个简单的xml解析器,我想实现它的每一个细节只是为了学习目的,据我所知,最好的方法是实现一个树结构并将xml字符串标记为一个树结构,所以它看起来像我将有2个简单的结构,一个代表一个节点,一个代表一个属性,上面的设计有多糟糕?有什么改进建议吗? 最佳答案 撇开你选择的任务的复杂性不谈,你的数据结构乍一看不错,但在我看来有两三处错误:您不仅要考虑子节点,还要考虑共享同一父节点的兄弟节点没有必要将sttribute树变成二叉树。为简单起见,我只使用单链表。您需要考虑左括号和右括号之间的节点内容(除非您的节点结构已经

c - 如何使用 libxml c 库获取 XML 中的属性?

某项任务要求我解析一个XML文件并检查每个节点及其属性。我花了几周时间学习XML和XML解析。我什至在之前发布的与C中的LIBXML解析相关的问题的帮助下,基于这种理解,我在下面编写了这段代码。但是这段代码是有缺陷的,因为我没有达到目标。我想我弄乱了一些父子和sibling的概念。我从下面提到的XML文件中了解到的是:Profile是Root节点,Catalog是它的子节点,目录有child作为参数和参数有child作为目标并且所有目录节点都是彼此的sibling。Profile-->Catalog-->Parameter-->Target|->Catalog-->Parameter-

xml - BeautifulSoup 不使用 utf-8 以外的其他编码解析 xml

我可以读取所有以开头的xmls文件但我无法读取以开头的文件.具体来说,我有两个文件:xml_iso.xml:ToveJaniReminderxml-utf.xml:ToveJaniReminder使用以下代码我可以找到note对于带有utf-8的文件但我无法在其他编码的文件中找到它。我该如何解决?示例代码:importunittestfrombs4importBeautifulSoupasSoupclassTestEncoding(unittest.TestCase):deftest_iso(self):withopen('tests/xml-iso.xml','r')asf_in:x

.net - 使用 XmlSerializer 读取 UTF-16 编码的 XML 文件

我正在调用WebService并获取从WebMethod返回的字符串。该字符串是一个序列化为XML的对象,应使用System.Xml.XmlSerializer对其进行反序列化。我的问题是第一行表明文档是UTF-16编码的:所以当反序列化时,我得到错误:ThereisanerrorinXMLdocument(0,0).执行string.Replace("utf-16","utf-8")确实有效,但必须有一个干净的方法让XmlSerializer知道吗? 最佳答案 这不应该影响任何东西-以下工作正常:usingSystem;using

java - UTF-16 编码

JaniALOKAshuTosh我的XML解析器仅支持UTF-8编码,否则它会给出SAX解析器异常。如何将UTF-16转换为UTF-8? 最佳答案 在那种情况下,它不是您正在使用的XML解析器,请参阅section2.2ofthexmlspecification:AllXMLprocessorsMUSTaccepttheUTF-8andUTF-16encodingsofUnicodeJavaxml解析器通常接收包装在InputSource中的输入目的。这可以用一个Reader参数来构造,该参数对给定的字符集进行字符解码。InputS

java - Xml如何设置UTF-16编码格式?

我需要将xml创建为要传递给服务器的字符串。我已经设法将数据转换为xml,但编码格式默认设置为utf-8。我需要的是我想将它设置为utf-16格式。但我还没有设置它的任何想法。privatevoidXmlCreation(intsize,Listitem)throwsParserConfigurationException,TransformerException{DocumentBuilderFactorydocumentBuilderFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdocumentBuilder

java - 无法在 Apache Jena 生成的 XML 中显示 UTF-8 编码

我希望ApacheJena生成一个XML我的代码:RDFWriterwriter=myJenaModel.getWriter("RDF/XML-ABBREV");writer.setProperty("showXmlDeclaration","true");FileOutputStreamfos=newFileOutputStream(filepath);OutputStreamWriterosw=newOutputStreamWriter(fos,"UTF-8");writer.write(myJenaModel,osw,null);只生成但是,如果我改变OutputStreamWr

iphone - 使用libxml2 sax解析器时如何从xml中获取属性的名称和值?

我一直在尝试通过使用libxml2解析iPhone应用程序上的api来检测某些通用xml中属性的名称和值对。对于我的项目,解析速度非常重要,所以我决定使用libxml2本身而不是使用NSXMLParser。现在,引用XMLPerformance,它是iPhoneSDK的一个示例,用于NSXMLParser和libxml2之间的解析基准,我试图在一个XML解析器处理程序中获取属性的详细信息,如下所示,但我不知Prop体如何来检测它。/*forexample,*/staticvoidstartElementSAX(void*ctx,constxmlChar*localname,constx

c - How to convert <node/> to <node></node> with libxml (converting empty elements to start-end tag pair)

生成XML内容时,我得到一个空节点,我希望它是.(由于是c14n的正确形式,因此称为“将空元素转换为开始-结束标记对”的过程)我应该如何转换它?JimGarrison(谢谢)暗示有一种方法可以做到这一点,通过使用xmlBufferCreate、xmlSaveToBuffer、xmlSaveDoc、xmlSaveClose使用xmlSaveOption:XML_SAVE_NO_EMPTY 最佳答案 查看libxml2文档,特别是xmlSaveOption值XML_SAVE_NO_EMPTY

java - Xerces UTF8Reader 中导致 MalformedByteSequenceException 的编码问题

我遇到了com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException使用XML文件。我使用调试器逐步执行Xerces代码,并缩小了发生这种情况的范围。我能够确定通过删除文档中的“智能引号”字符,文档变得可解析。文档没有DTD。Notepad++将其标记为“作为UTF-8的ANSI”。Firefox将其称为“西方”。我记得在大学里听过一次不太惊心动魄的讲座,UTF-8被设计为与单字节编码系统向后兼容。我也看到onthischart,字节序列e2809d事实上,代表“右双引号”,但即使我看不到编码问题,我